Кибербезопасность предприятия
2025-10-02
Александрова Ульяна Вадимовна
Волгин Иван Алексеевич
Голощапов Ярослав Вячеславович
Дворкина Ева Владимировна
Серёгина Ирина Андреевна
Чемоданова Ангелина Александровна
Освоить практических навыков выявления, анализа и устранения уязвимостей информационных систем в рамках сценария «Защита научно-технической информации предприятия».
Обнаружить, проанализировать и закрыть уязвимости:
Слабый пароль пользователя;
XSS (CVE-2019-17427);
Blind SQL (CVE-2019-18890).
Определить и устранить последствия эксплуатации уязвимостей:
Developer backdoor (последствие уязвимости 1);
Redmine User (последствие уязвимости 2).
Разработать и применить меры по устранению выявленных уязвимостей.
Уязвимости и последствия будут детектироваться с помощью ViPNet IDS NS.
Сканирование системы и множество одинаковых событий со стороны 10.10.4.11 на 10.10.2.12.
Событие класса “successful-admin”: пользователь успешно вошел в систему, подобрав пароль.
Действия между узлами 10.10.4.11, 10.10.2.12, 10.10.4.13: был скомпрометирован пароль от компьютера Developer Workstation.
Рисунок 2: Обнаружение входа в систему
Уязвимость - слабый пароль пользователя. Рекомендации по устранению - изменить пароль на более сложный
Рисунок 3: Карточка инцидента
Создание исполняемого файла на файловом сервере 10.10.2.12 и обращения к нему
Рисунок 4: Детектирование создания неизвестного файла
Событие класса trojan-activity (LaZagne), указывающее на часть атаки, запускающую программу для извлечения информации из браузера.
Рисунок 5: Обнаружение файла с backdoor
Первичные рекомендации по устранению последствия - удаление исполняемого файла с backdoor и остановка его работы.
Рисунок 6: Карточка инцидента
Cобытия с источником - 10.10.4.11, получателем - 10.10.2.15 (сервер Redmine). События AM EXPLOIN Possible Redmine XSS и событие AM EXPLOIT Generic Possible XSS in HTTP Body: они говорят о том, что эксплуатируется уязвимость Redmine, существующая в версиях до 4.0.4, позволяющая внедрять вредоносный JavaScript-код в веб-страницы, просматриваемые другими пользователями .
Рисунок 7: Обнаружение эксплуатации уязвимости
На сервере Redmine в файле production.log увидим сильно отличающиеся от остальных этапы, говорящие о внедрении JS кода.
Рисунок 8: Обнаружение эксплуатации уязвимости через логи
Составляем карточку уязвимости, общее описание и рекомендации можно найти на сайте AMTIP.
Рисунок 9: Карточка уязвимости
В проекте DEV1 во вкладке wiki включен REST API
Рисунок 10: Обнаружение REST API
В коде упоминается пользователь с именем hacker, его мы обнаружим и в списках пользователей.
Код мы видели в пакете события.
Рисунок 11: Упоминание пользователя в коде
Рисунок 12: Подозрительный пользователь с правами администратора
Заполняем карточку инцидента, в рекомендациях удаление нового пользователя.
Рисунок 13: Карточка инцидента
Большое количество SQL запросов SELECT SLEEP и SELECT FROM от сервера 10.10.4.11 на сервер 10.10.2.15
Рисунок 14: SQL-запросы
При заполнении карточки уязвимости ссылаемся на гитхаб.
Рисунок 15: Карточка инцидента
Для закрытия уязвимости меняем пароль на более сложный, не содержащийся в словаре. На сервер MS Active Directory подключаемся через удаленный рабочий стол. Открываем «Active Directory Users and Computers», переходим в users, находим dev1.
Рисунок 16: Пользователь dev1
Меняем пароль пользователя
Рисунок 17: Смена пароля
Через удаленный рабочий стол переходим на сервер Developer (10.10.4.13). Новая задача, записанная нарушителем, находится на узле Developer 1 в планировщике задач.
Рисунок 18: Запуск исполняемого файла в планировщике
Рисунок 19: Запуск исполняемого файла в планировщике
Удаляем задачу в планировщике, и теперь надо удалить файл. Во вкладке action мы обнаружили путь к файлу C:\Users\dev1\Downloads\svchosting.exe, благодаря этому нашли его и удалили.
Рисунок 20: Путь к исполняемому файлу
В Redmine до версии 4.0.4 постоянный XSS существует из-за ошибок форматирования при работе с textile текстом. В данном сценарии используется для включения REST API для эксплуатации следующей уязвимости.
Рисунок 21: Пример добавления кода, выводящего на экран надпись XSS в wiki-страницу
Из описания уязвимости понятно, что необходимо найти библиотеку для преобразования textile разметки в html. В Redmine за данное преобразование отвечает файл redcloth3.rb. Для устранения изменим в нем следующие строки
Рисунок 22: Содержимое файла redcloth3.rb
Строки после изменения:
Рисунок 23: Исправления в файле redcloth3.rb
Перезапускаем службу веб-сервера sudo systemctl restart nginx.service. Уязвимость успешно устранена, так как изменилось отображение страницы на Redmine Wiki.
Рисунок 24: Успешное устранение уязвимости
Нарушитель создал пользователя на портале Redmine. Для обнаружения добавления нового привилегированного пользователя заходим в консоль администратора Redmine, переходим в раздел «Administration» – «Users» и смотрим список существующих пользователей. Удаляем его.
Рисунок 25: Список пользователей Redmine
Эксплуатируемая уязвимость – CVE-2019-18890.
В Redmine до версии 3.2.9 и 3.3.x до версии 3.3.10 уязвимость позволяет пользователям Redmine получать доступ к защищенной информации с помощью сгенерированного объектного запроса. Уязвимость реализуется посимвольным перебором с замером времени ответа. Время прихода пакета является индикатором: при запоздании пакета – символ подобран верно, иначе – перебор продолжается
Рисунок 26: SQL-запрос
Вносим изменения в код, добавляя фильтрацию значений, и после перезапуска веб-сервера через команду sudo systemctl restart nginx.service уязвимость устраняется.
Рисунок 27: Содержимое файла query.rb до исправления уязвимости
Исправленный файл:
Рисунок 28: Содержимое файла query.rb с исправлением уязвимости
Закрыли все обнаруженные инциденты,
Устранили уязвимости и последствия
Рисунок 29: Устраненные уязвимости и последствия
В ходе выполнения лабораторной работы были успешно достигнуты поставленные цели: освоены практические навыки выявления, анализа и устранения типовых уязвимостей информационной системы. В рамках сценария «Защита научно-технической информации предприятия» были обнаружены и закрыты критические уязвимости и их последствия эксплуатации.